// 引入发送请求的方法，  注意路径一定要补全
import {
  request
} from "../../request/index.js"

// pages/category/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 上部导航栏
    topMenuList: [],
    // 左侧的菜单数据
    leftMenuList: [],
    // 三级上部导航栏
    threeMenuList: [],
    // 右侧的商品数据
    rightContent: [],
    // rightContent_all: [],
    // 被点击的菜单显示
    currentIndex1: 0,
    currentIndex2: 0,
    currentIndex3: 0,
    click1: [],

    login_obj: {},
    userobjs_adress: {},
    adress_default: {}
  },
  // 接口的返回总商品数据
  Cates: [],





  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {



    // this.getCates();
    /*
    1、先判断本地存储中有没有旧数据
    {time：Date.now(),data:[...]}
    2、没有数据直接发送新请求
    3、有旧数据没过期就用旧数据
    */

    //  1/获取本地数据
    const Cates = wx.getStorageSync('Cates')
    // 2、判断
    if (!Cates) {
      // 不纯在数据先发送请求
      this.getCates();
    } else {
      // 有旧缓存数据 
      // 有旧的数据 定义过期时间  10s 改成 5分钟
      if (Date.now() - Cates.time > 1000 * 5) {
        // 重新发送请求
        this.getCates();
      } else {
        // 可以使用旧数据
        this.Cates = Cates.data;
        // 构造上部的大数据菜单栏
        let topMenuList = this.Cates.map(v => v.name);
        //构造左侧大数据菜单栏  先给个index0默认的 后面点击后再刷新新点击的index
        let leftMenuList = this.Cates[0].children.map(v => v.name);
        // 构造右侧
        let rightContent = this.Cates[0].children[0].children.map(v => v.sps[0]);
        this.setData({
          topMenuList,
          leftMenuList,
          rightContent
        })

      }
    }
  },

  getCates() {
    request({
        // url: "https://yunbao.greatforest.com.cn/ruoyi-admin/qt/spFl?spdq=" + this.data.login_obj.userName,
        // url: "https://yunbao.greatforest.com.cn/ruoyi-admin/qt/spFl?spdq=二七区",
        url: "https://yunbao.greatforest.com.cn/ruoyi-admin/qt/spFl?spdq=惠济区",
        method: 'POST'
      })
      .then(res => {
        console.log("测试是否请求成功拿回的数据", res);
        this.Cates = res.data.data;
        // 把请求到的数据存储到本地存储中
        wx.setStorageSync('Cates', {
          time: Date.now(),
          data: this.Cates
        });

        // console.log( this.Cates[0].name)
        // 构造上部的大数据菜单栏
        let topMenuList = this.Cates.map(v => v.name);
        //构造左侧大数据菜单栏  先给个index0默认的 后面点击后再刷新新点击的index
        let leftMenuList = this.Cates[0].children.map(v => v.name);
        // 构造右侧上部
        let threeMenuList = this.Cates[0].children[0].children.map(v => v.name);
        // 构造右侧商品
        let rightContent = this.Cates[0].children[0].children[0].sps;
        this.setData({
          topMenuList,
          leftMenuList,
          threeMenuList,
          rightContent
        })
      })
  },

  // 上部菜单的点击事件
  handleItemTap1(e) {
    // 获取被点击标题身上的索引
    // 给data中的currentIndex赋值就可以
    console.log(e);
    const {
      index
    } = e.currentTarget.dataset;

    console.log({
      index
    })
    let activeIndex = index;
    let activeIndex2 = 0
    //构造左侧大数据菜单栏  点击之后的数据刷新
    let leftMenuList = this.Cates[index].children.map(v => v.name);
    let click1 = this.Cates[index];

    // 构造右侧上部
    let threeMenuList = this.Cates[index].children[0].children.map(v => v.name);

    // 构造右侧商品
    let rightContent = this.Cates[index].children[0].children[0].sps;
    this.setData({
      // 这块是把currentIndex变成点击获取的index的值改变点击样式的
      currentIndex1: index,
      leftMenuList,
      threeMenuList,
      rightContent,
      click1,
      activeIndex,
      activeIndex2
    })
  },

  // 左左左部菜单的点击事件

  handleItemTap2(e) {
    // 点击左侧右下显示全部
    request({
      // url: "https://yunbao.greatforest.com.cn/ruoyi-admin/qt/spFl?spdq=" + this.data.login_obj.userName,
      // url: "https://yunbao.greatforest.com.cn/ruoyi-admin/qt/spFl?spdq=二七区",
      url: "https://yunbao.greatforest.com.cn/ruoyi-admin/qt/sperjiFl?spdq=惠济区",
      method: 'GET'
    })
    .then(res => {
      console.log("测试右侧是否请求成功拿回的数据", res);
      let Cates = res.data.data;
      console.log("测试右侧商品", Cates);
      // 把请求到的数据存储到本地存储中
      wx.setStorageSync('Cates', {
        time: Date.now(),
        data: this.Cates
      });
    }),

    // 获取被点击标题身上的索引
    // 给data中的currentIndex赋值就可以
    console.log(e);
    const {
      index
    } = e.currentTarget.dataset;
    console.log({
      index
    })
    // 构造右侧上部
    let activeIndex2 = index;
    let threeMenuList = this.Cates[this.data.currentIndex1].children[index].children.map(v => v.name);

    // 构造右侧商品（原来）
    let rightContent = this.Cates[this.data.currentIndex1].children[index].children[0].sps;
    // let rightContent_all = this.Cates[this.data.currentIndex1].children[index].children.map(v => v.sps);
    // 构造右侧商品（新口）
    // let rightContent = this.allright_Cates[this.data.currentIndex1].children[index].children[0].sps;
    console.log("第二次点击右侧上部商品栏", threeMenuList);
    // console.log("第二次点击构造右侧商品111要拿全部", rightContent_all);
    this.setData({
      // 这块是把currentIndex变成点击获取的index的值改变点击样式的

      currentIndex2: index,
      threeMenuList,
      rightContent,
      // rightContent_all,
      activeIndex2
    })
    // 这块是把currentIndex变成点击获取的index的值改变点击样式的
    //构造左侧大数据菜单栏  点击之后的数据刷新

  },

  // 右侧上部菜单点击事件
  handleItemTap3(e) {
    console.log(e);
    const {
      index
    } = e.currentTarget.dataset;
    console.log("点击第3排index",index )
    //构造上侧大数据菜单栏  点击之后的数据刷新
    // let threeMenuList = this.Cates[this.data.currentIndex1].children[this.data.currentIndex2].children.map(v => v.name);
    // console.log("右侧上部商品栏", threeMenuList);
    this.setData({
      // 这块是把currentIndex变成点击获取的index的值改变点击样式的
      currentIndex3: index,
      // threeMenuList,
      // rightContent
    })
    // 构造右侧商品信息
    let rightContent = this.Cates[this.data.currentIndex1].children[this.data.currentIndex2].children[this.data.currentIndex3].sps;

    console.log("右侧商品", rightContent)
    this.setData({
      // 这块是把currentIndex变成点击获取的index的值改变点击样式的
      // currentIndex3: index,
      // threeMenuList,
      rightContent
    })
  },




  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 获取storge里面是否有注册信息userobjs  因为想要用地址判断
    let login_obj = wx.getStorageSync('login_obj')
    console.log("页面加载调用缓存注册信息", login_obj)
    this.setData({
      login_obj
    })

    // 获取storge里面是否有注册信息userobjs  因为想要用地址判断
    let userobjs = wx.getStorageSync('userobjs')
    // console.log("页面加载调用缓存注册信息", userobjs[0].adress)
    this.setData({
      userobjs
    })

    // 获取storge里面是否有地址信息  因为想要用地址判断
    let address = wx.getStorageSync('address')
    // console.log("页面加载调用缓存注册信息", userobjs[0].adress)
    this.setData({
      address
    })

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})